package com.linkstec.bookshop.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.linkstec.bookshop.pojo.Goods;
import com.linkstec.bookshop.vo.GoodsVo;

/**
 * 
 * @ClassName:  GoodsMapper 商品的mapper   
 * @Description:TODO   
 * @author:  JGQiang
 * @date:   2018年11月23日 上午11:23:29
 */
public interface GoodsMapper {

	/**
	 * 
	 * @Description:TODO 查找热门商品
	 * @author: JGQiang
	 * @date:   2018年11月23日 上午11:23:41    
	 * @return
	 */
	List<GoodsVo> findHot();

	/**
	 * 
	 * @Description:TODO 通过商品分类id，查询商品分类的数量
	 * @author: JGQiang
	 * @date:   2018年11月23日 下午3:18:47    
	 * @param cgId
	 * @return
	 */
	int selGoodsCountByCategory(int cgId);

	/**
	 * 
	 * @Description:TODO 分页查询商品分类的商品
	 * @author: JGQiang
	 * @date:   2018年11月23日 下午3:29:44    
	 * @param cgId
	 * @param beginPage
	 * @param limitPage
	 * @return
	 */
	List<GoodsVo> findGoodsByCategory(int cgId, int beginPage, int limitPage);

	/**
	 * 
	 * @Description:TODO 模糊查询的数量
	 * @author: JGQiang
	 * @date:   2018年11月25日 下午12:06:37    
	 * @param condition
	 * @return
	 */
	int findGoodsCountVague(@Param("condition")String condition);

	/**
	 * 
	 * @Description:TODO 模糊查询的商品
	 * @author: JGQiang
	 * @date:   2018年11月25日 下午12:06:57    
	 * @param condition
	 * @param beginPage
	 * @param limitPage
	 * @return
	 */
	List<GoodsVo> findGoodsVague(@Param("condition")String condition, int beginPage, int limitPage);

	/**
	 * 
	 * @Description:TODO 查询一个商品的详情
	 * @author: JGQiang
	 * @date:   2018年11月26日 上午9:30:37    
	 * @param goodsId
	 * @return
	 */
	GoodsVo findOneGoodsDetail(int goodsId);
	
	GoodsVo findOneGoodsDetailById(int goodsId);
	
	

	/**     
	 * @Description:TODO 返回所有goods信息数目
	 * @author: yanyuan
	 * @date:   2018年11月26日 下午4:42:37    
	 *  @return    
	 */ 
	int findAllGoodsCount();

	/**     
	 * @Description:TODO 返回goods的分页后的信息
	 * @author: yanyuan
	 * @date:   2018年11月26日 下午4:42:40    
	 *  @param beginPage
	 *  @param limitPage
	 *  @return    
	 */ 
	List<GoodsVo> findAllGoods(int beginPage, int limitPage);

	/**     
	 * @Description:TODO
	 * @author: yanyuan
	 * @date:   2018年11月27日 上午9:39:14    
	 *  @param goods    
	 */ 
	void update(Goods goods);

	void goodsOffline(int goodsId);

	void goodsOnline(int goodsId);

	void add(int bookId);

}
